package Mechanic;

import javax.swing.JLabel;
import javax.swing.JPanel;

import Blocktypes.abstractBlocks;
import GraphicalUserInterface.Board;
import GraphicalUserInterface.GameOverScreen;
import GraphicalUserInterface.MainFrame;
import GraphicalUserInterface.WaitingBlock;

public interface ILogic {

	public abstract void initPlayingField();

	public abstract void initBlockList();

	public abstract void getRandomBlock();

	public abstract void startGame();

	public abstract void gameOver();

	// Verschieben
	public abstract void move(int x, int y, abstractBlocks block);

	public abstract void moveOneDown(abstractBlocks block);

	public abstract void moveDown(abstractBlocks block);

	public abstract void moveOneLeft(abstractBlocks block);

	public abstract void moveOneRight(abstractBlocks block);

	public abstract int[][] rotateFunction(abstractBlocks block);

	public abstract void rotateBlock();

	public abstract int getyMaxBlocks();

	public abstract abstractBlocks getWaitingBlock();

	public abstract int[][] getPlayingField();

	public abstract void setPlayingField(int[][] f_playingField);

	public abstract abstractBlocks getCurrentBlock();

	public abstract void setWaitingBlock(abstractBlocks f_waitingBlock);

	public abstract void setCurrentBlock(abstractBlocks f_currentBlock);

	public abstract int getxMaxBlocks();

	public abstract int getHeight();

	public abstract int getWidth();

	public abstract int getPob_height();

	public abstract int getLevel_high();

	public abstract void setLevel_high(int level_high);

	public abstract int getPunkte_high();

	public abstract void setPunkte_high(int punkte_high);

	public abstract void setInstanceOfGamingboard(Board f_gamingboard);

	public abstract void setInstanceOfWaitingBlock(WaitingBlock f_waitingBlockBoard);

	public abstract void setInstanceOfpointLabel(JLabel f_pointLabel);

	public abstract void setInstanceOfgoPointLabel(JLabel f_goPointLabel);

	public abstract void setInstanceOflevel_Ausgabe(JLabel f_level_Ausgabe);

	public abstract void setInstanceOfMainScreen(JPanel f_mainScreen);

	public abstract void setInstanceOfMainFrame(MainFrame f_mainFrame);

	public abstract void setInstanceOfGameOverScreen(GameOverScreen f_gameOverScreen);

	public abstract int getPoints();

	public abstract void setPoints(int p);

	public abstract int getLevel();

	public abstract void setNopause(boolean p);

	public abstract boolean getGameOver();

	public abstract void setStartVariable(boolean f_startVariable);

	public abstract InputOutput getIOConnection();

	public abstract int loadGame();

	public abstract void saveGame();

	public abstract void setNameOfPlayer(String f_nameOfPlayer);

	public abstract void setGameOver(boolean g);

	public abstract Sound getSound();

	public abstract int[] getPointsLoad();

	public abstract String[] getNameLoad();

	public void setModus(boolean f_modus);

}